package org.example.util.log.text;

import org.apache.poi.POIXMLDocument;
import org.apache.poi.POIXMLTextExtractor;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.apache.poi.xwpf.usermodel.XWPFDocument;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

/**
 * @auther admin闫
 * @Descriptopn
 * @date 2024/4/7 19:21
 */
public class WordUtil {

    //读取word文档中，doc后缀的文件

    /**
     * 读取word文档中，doc后缀的文件 一次读取
     * @param fileUrl 文件路径
     * @return 文本
     */
    public static String searchWordDoc(String fileUrl){
        String docList = "";
        String content=null;
        //读取字节流，读取文件路径
        InputStream input = null;
        try {
            input = new FileInputStream(new File(fileUrl));
            WordExtractor wex = new WordExtractor(input);
            content = wex.getText();
            //System.out.println(content);
            docList=content;
        } catch (Exception e) {
//            String doc = doc(fileUrl);
//            return doc;
        }
        return docList;
    }



//    private static String doc(String path){
//        try (FileInputStream fis = new FileInputStream(path);
//             HSSFWorkbook workbook = new HSSFWorkbook(fis)) {
//            StringBuffer stringBuffer=new StringBuffer();
//            // 读取第一个工作表
//            HSSFSheet sheet = workbook.getSheetAt(0);
//
//            // 遍历工作表中的行
//            for (int rowIndex = 0; rowIndex <= sheet.getLastRowNum(); rowIndex++) {
//                HSSFRow row = sheet.getRow(rowIndex);
//                if (row != null) {
//                    // 遍历行中的单元格
//                    for (int cellIndex = 0; cellIndex < row.getLastCellNum(); cellIndex++) {
//                        HSSFCell cell = row.getCell(cellIndex);
//                        if (cell != null) {
//                            // 输出单元格内容
//                            stringBuffer.append(cell.toString()+"\t");
//                        }
//                    }
//                    System.out.println();
//                }
//                return stringBuffer.toString();
//            }
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        return "";
//    }

    /**
     * 读取word文档中，docx后缀的文件 一次读取
     * @param fileUrl 文件路径
     * @return 文本
     */
    public static String searchWordDocX(String fileUrl){
        //读取文件路径
        OPCPackage opcPackage = null;
        String content = null;
        String docxList = "";
        try {
            opcPackage = POIXMLDocument.openPackage(fileUrl);
            XWPFDocument xwpf = new XWPFDocument(opcPackage);
            POIXMLTextExtractor poiText = new XWPFWordExtractor(xwpf);
            content = poiText.getText();
            docxList=content;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return docxList;
    }


}
